#!/usr/bin/env bash
#:`brew test-fuse`
#:    Tests local FUSE installation

. "$(dirname "$0")"/../lib/funcs.sh

tmpdir=/tmp/fuse-test.$$
mkdir -p "$tmpdir"/test_mount
trap 'rm -fr "$tmpdir"' EXIT

[[ $(uname -s) == "Darwin" ]] || fatal "This script can only be run on macOS"

cd "$tmpdir"
eval "$(brew shellenv)"

info "Checking for FUSE installation"
cmd pkgutil --pkg-info io.macfuse.installer.components.core
cmd pkgutil --lsbom io.macfuse.installer.components.core

info "Test FUSE build"
examples=(
  https://raw.githubusercontent.com/libfuse/libfuse/46b9c3326d50aebe52c33d63885b83a47a2e74ea/example/hello.c
  https://raw.githubusercontent.com/libfuse/libfuse/46b9c3326d50aebe52c33d63885b83a47a2e74ea/example/hello_ll.c
  https://raw.githubusercontent.com/libfuse/libfuse/46b9c3326d50aebe52c33d63885b83a47a2e74ea/example/null.c
)
for u in "${examples[@]}"; do
  # Get the last FUSE 2.x lowlevel example file
  cmd curl -sOL "$u"
  # Build it Homebrew-style
  f=${u##*/}; p=${f%.c}
  cmd clang -D_FILE_OFFSET_BITS=64 -I/usr/local/include/fuse -L/usr/local/lib -g -O2 -Wall -o "$p" "$f" -lfuse -lpthread
done
